// 由范围 [0,n] 内所有整数组成的 n + 1 个整数的排列序列
// 可以表示为长度为 n 的字符串 s ，其中:

// 如果 perm[i] < perm[i + 1] ，那么 s[i] == 'I' 
// 如果 perm[i] > perm[i + 1] ，那么 s[i] == 'D' 
// 给定一个字符串 s ，重构排列 perm 并返回它。
// 如果有多个有效排列perm，则返回其中 任何一个 。

/**
 * @param {string} s
 * @return {number[]}
 */
var diStringMatch = function(s) {
    let arr = [];
    let perm = [];
    for(let i = 0; i <= s.length;i++){
        arr[i] = i;
    }
    console.log(arr);
    for(let i = 0,j=s.length,k=0;i <= s.length;i++){
        console.log(s[i]);
        if(s[i] === 'I'){
            perm.push(arr[k++]);
        }
        if(s[i] === 'D'){
            perm.push(arr[j--]);
        }
        console.log('k:',k,'j:',j)
        console.log(perm);
    }
    for(let i=0 ; i<arr.length;i++){
        if(!perm.includes(arr[i])){
            perm.push(arr[i]);
            break;
        }
    }
    console.log(perm);
    return perm;
};
let s = "IDID"
diStringMatch(s);